docs(api): daily audit 2026-08-24 — align stale envelope schemas, fix template update semantics - #305
Closed
flashduty[bot] wants to merge 1 commit into
Closed
docs(api): daily audit 2026-08-24 — align stale envelope schemas, fix template update semantics#305flashduty[bot] wants to merge 1 commit into
flashduty[bot] wants to merge 1 commit into
Conversation
… template update semantics
This was referenced Aug 25, 2026
Merged
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Summary
Daily api-review audit (2026-08-24). Deterministic audit performed directly on HEAD: registry public rows (337) match spec paths (337) in both directions, docs.json nav covers all 337 operations in en/zh, api-catalog counts (191/42/35/42/27 = 337) reconcile, en/zh structural parity holds, and
scripts/lint_openapi.pyis clean. No endpoint was added or removed — the two new fc-pgy registry rows areAuth: jwt(not public) and the rate-limit change is on anAuth: datarow (also not public), so no docs.json / api-catalog.mdx changes are needed.Two real drifts found and fixed:
1. Stale envelope schemas in consolidated + safari files (committed internal drift)
The canonical error envelope (
ErrorCode/DutyError/ErrorResponse) matches the on-call / platform / monitors / rum split files and the generator'senvelope_schemas()output exactly, but the consolidatedopenapi.{en,zh}.jsonand safari split still carried an older lean version:ErrorCode— missingx-enumDescriptions(per-code explanations), missingexample, and a short description without the full code→HTTP tableDutyError—messageproperty missing itsexample; zh file carried English description textErrorResponse(zh) — description in English instead of ChinesePer the committed-internal-drift rule, the split files (what Mintlify renders) are the truth source; consolidated + safari are aligned back to them. en files: 2 schemas touched (ErrorCode, DutyError); zh files: 3 (ErrorCode, DutyError, ErrorResponse).
2.
/template/updatedescription stale vs backend semanticsfc-event merge
3e6c9763(fix-template-update-patch-semantics, 2026-08-23) changed update semantics to partial-update: a channel omitted from the request is no longer cleared — only an explicit empty string clears it. The operation description "Replace the content of every channel on an existing template" described the old (buggy) behavior and is updated in on-call split + consolidated (en + zh):Note: the request schema's field-level descriptions remain valid (they describe the source format, not update semantics); only the operation description needed the fix.
Checks
python3 scripts/lint_openapi.py— clean (12 spec files, no violations)Scope
No operations added/updated/removed. Unresolved: none (no registry row lacked a handler; no new public rows). No constructed examples — no examples were synthesized this round.